package dk.pun.aot.shared.character;

public enum SkillType {

	HISTORY ("History", FieldType.ARTS, QualityType.WISDOM),
	SOCIOLOGY ("Sociology", FieldType.ARTS, QualityType.WISDOM),
	THEOLOGY ("Theology", FieldType.ARTS, QualityType.WISDOM),
	LAW ("Law", FieldType.ARTS, QualityType.WISDOM),

	BIOLOGY ("Biology", FieldType.SCIENCE, QualityType.WISDOM),
	CHEMISTRY ("Chemistry", FieldType.SCIENCE, QualityType.WISDOM),
	GENETICS ("Genetics", FieldType.SCIENCE, QualityType.WISDOM),
	MEDICINE ("Medicine", FieldType.SCIENCE, QualityType.WISDOM),
	ARCANE ("Arcane", FieldType.SCIENCE, QualityType.WISDOM),

	ELECTRONICS ("Electronics", FieldType.TECHNOLOGY, QualityType.WISDOM),
	MECHANICAL_TECHNOLOGIES ("Mechanical Technologies", FieldType.TECHNOLOGY, QualityType.WISDOM),
	STRUCTURAL_TECHNOLOGIES ("Structural Technologies", FieldType.TECHNOLOGY, QualityType.WISDOM),
	COMPUTER_TECHNOLOGIES ("Computer Technologies", FieldType.TECHNOLOGY, QualityType.WISDOM),

	BARTER ("Barter", FieldType.COMMERCE, QualityType.PRESENCE),
	PRODUCTION ("Production", FieldType.COMMERCE, QualityType.WISDOM),
	BUSINESS_ADMINISTRATION ("Business Administration", FieldType.COMMERCE, QualityType.WISDOM),
	NETWORKING ("Networking", FieldType.COMMERCE, QualityType.WIT),

	TACTICS ("Tactics", FieldType.MILITARY_THEORY, QualityType.WISDOM),
	LEADERSHIP ("Leadership", FieldType.MILITARY_THEORY, QualityType.PRESENCE),

	ORIENTEERING ("Orienteering", FieldType.SURVIVAL, QualityType.WISDOM),
	ANIMAL_HANDLING ("Animal Handling", FieldType.SURVIVAL, QualityType.PRESENCE),
	LIVING_OFF_THE_LAND ("Living off the Land", FieldType.SURVIVAL, QualityType.WILL),
	TRACKING ("Tracking", FieldType.SURVIVAL, QualityType.WISDOM),

	VISUAL_ARTS ("Visual Arts", FieldType.FINE_ARTS, QualityType.WISDOM),
	WRITING ("Writing", FieldType.FINE_ARTS, QualityType.WIT),
	CULINARY_ARTS ("Culinary Arts", FieldType.FINE_ARTS, QualityType.WISDOM),
	PERFORMING ("Performing", FieldType.FINE_ARTS, QualityType.WIT),

	BLUFF ("Bluff", FieldType.COERCION, QualityType.WIT),
	INTIMIDATION ("Intimidation", FieldType.COERCION, QualityType.PRESENCE),
	NEGOTIATION ("Negotiation", FieldType.COERCION, QualityType.WISDOM),
	MANIPULATION ("Manipulation", FieldType.COERCION, QualityType.PRESENCE),

	SENSE_ACTION ("Sense Action", FieldType.ALERTNESS, QualityType.WIT),
	READ_PEOPLE ("Read People", FieldType.ALERTNESS, QualityType.WIT),
	CONCENTRATION ("Concentration", FieldType.ALERTNESS, QualityType.WILL),
	DETECTION ("Detection", FieldType.ALERTNESS, QualityType.WIT),

	GATHER_INFORMATION ("Gather Information", FieldType.NEFARIOUS, QualityType.WIT),
	GAMBLE ("Gamble", FieldType.NEFARIOUS, QualityType.WIT),
	SLEIGHT_OF_HAND ("Sleight og Hand", FieldType.NEFARIOUS, QualityType.WILL),
	APPRAISE ("Appraise", FieldType.NEFARIOUS, QualityType.WISDOM),
	STREET_SMARTS ("Street Smarts", FieldType.NEFARIOUS, QualityType.WISDOM),

	GROUND_VEHICLE ("Ground Vehicle", FieldType.OPERATE_VEHICLE, QualityType.ATHLETICISM),
	AIRCRAFT ("Aircraft", FieldType.OPERATE_VEHICLE, QualityType.PHYSICAL_ACUMEN),
	WATERCRAFT ("Watercraft", FieldType.OPERATE_VEHICLE, QualityType.ATHLETICISM),
	POWER_SUITS ("Power Suits", FieldType.OPERATE_VEHICLE, QualityType.ATHLETICISM),
	INDUSTRIAL_VEHICLES ("Industrial Vehicle", FieldType.OPERATE_VEHICLE, QualityType.PHYSICAL_ACUMEN),

	NAVIGATION_SYSTEMS ("Navigation Systems", FieldType.VEHICLE_SYSTEMS, QualityType.PHYSICAL_ACUMEN),
	WEAPON_SYSTEMS ("Weapon Systems", FieldType.VEHICLE_SYSTEMS, QualityType.PHYSICAL_ACUMEN),
	SENSORY_AND_COMMUNICATION_SYSTEMS ("Sensory and Communication Systems", FieldType.VEHICLE_SYSTEMS, QualityType.PHYSICAL_ACUMEN),
	EQUIPMENT_SYSTEMS ("Equipment Systems", FieldType.VEHICLE_SYSTEMS, QualityType.PHYSICAL_ACUMEN),

	RUNNING ("Running", FieldType.CORE_FITNESS, QualityType.FITNESS),
	SWIMMING ("Swimming", FieldType.CORE_FITNESS, QualityType.FITNESS),
	CLIMBING ("Climbing", FieldType.CORE_FITNESS, QualityType.ATHLETICISM),
	THROWING ("Throwing", FieldType.CORE_FITNESS, QualityType.PHYSICAL_ACUMEN),
	TUMBLE ("Tumble", FieldType.CORE_FITNESS, QualityType.ATHLETICISM),

	THEFT ("Theft", FieldType.ESPIONAGE, QualityType.PHYSICAL_ACUMEN),
	STEALTH ("Stealth", FieldType.ESPIONAGE, QualityType.ATHLETICISM),
	ESCAPE_ARTIST ("Escape Artist", FieldType.ESPIONAGE, QualityType.ATHLETICISM),
	DECEIVE ("Deceive", FieldType.ESPIONAGE, QualityType.PRESENCE),
	DEFEAT_SECURITY ("Defeat Security", FieldType.ESPIONAGE, QualityType.PHYSICAL_ACUMEN),

	ONE_HANDED_MELEE ("One Handed Melee", FieldType.MELEE_COMBAT, QualityType.ATHLETICISM),
	TWO_HANDED_MELEE ("Two Handed Melee", FieldType.MELEE_COMBAT, QualityType.ATHLETICISM),
	UNARMED_MELEE ("Unarmed Melee", FieldType.MELEE_COMBAT, QualityType.ATHLETICISM),
	GRAPPLE ("Grapple", FieldType.MELEE_COMBAT, QualityType.ATHLETICISM),

	PISTOLS_AND_SMGS ("Pistols and SMGs", FieldType.SMALL_ARMS, QualityType.PHYSICAL_ACUMEN),
	RIFLES_AND_SHOTGUNS ("Rifles and Shotguns", FieldType.SMALL_ARMS, QualityType.PHYSICAL_ACUMEN),
	BOWS_AND_CROSSBOWS ("Bows and Crossbows", FieldType.SMALL_ARMS, QualityType.PHYSICAL_ACUMEN),

	HEAVY_ASSAULT_WEAPONS ("Heavy Assault Weapons", FieldType.ASSAULT_SUPPORT_WEAPONS, QualityType.ATHLETICISM),
	LAUNCHERS_AND_MORTARS ("Launchers and Mortars", FieldType.ASSAULT_SUPPORT_WEAPONS, QualityType.PHYSICAL_ACUMEN),
	EXPLOSIVES ("Explosives", FieldType.ASSAULT_SUPPORT_WEAPONS, QualityType.PHYSICAL_ACUMEN),
	MORTARS ("Mortars", FieldType.ASSAULT_SUPPORT_WEAPONS, QualityType.PHYSICAL_ACUMEN);

	private String name;
	private FieldType fieldType;
	private QualityType qualityType;
	
	SkillType(String name, FieldType fieldType, QualityType qualityType) {
		this.name = name;
		this.fieldType = fieldType;
		this.qualityType = qualityType;
	}
	
	public FieldType getFieldType() {
		return this.fieldType;
	}
	
	public QualityType getQualityType() {
		return this.qualityType;
	}
	
	public String toString() {
		return this.name;
	}
}
